#!/bin/sh
# 定义应用组名和名称
group_name='venue_reservation_service'
app_name=${DRONE_REPO_NAME}
app_version='latest'

# 验证必要变量
if [ -z "$app_name" ]; then
  echo "ERROR: DRONE_REPO_NAME not set!"
  exit 1
fi

# 1. 安全停止容器
if docker ps | grep -q ${app_name}; then
  echo "----Stopping container: ${app_name}----"
  docker stop ${app_name} || echo "警告: 容器停止失败，但继续执行"
elif docker ps -a | grep -q ${app_name}; then
  echo "容器 ${app_name} 已停止，跳过停止命令"
else
  echo "容器 ${app_name} 不存在，无需停止"
fi

# 2. 安全删除容器
if docker ps -a | grep -q ${app_name}; then
  echo "----Removing container: ${app_name}----"
  docker rm ${app_name} || echo "警告: 容器删除失败，但继续执行"
else
  echo "容器 ${app_name} 不存在，无需删除"
fi

# 3. 安全删除镜像
image_name="${group_name}/${app_name}:${app_version}"
if docker images | grep -q "${group_name}/${app_name}.*${app_version}"; then
  echo "----Removing image: ${image_name}----"
  docker rmi ${image_name} || echo "警告: 镜像删除失败，但继续执行"
else
  echo "镜像 ${image_name} 不存在，无需删除"
fi

# 4. 构建新镜像
echo "----Building image: ${image_name}----"
docker build -t ${image_name} .

# 5. 带双端口映射运行容器
echo "----Starting container with port mapping (9020 & 9030)----"
docker run \
  --name ${app_name} \
  -p 9020:9020 \
  -p 9030:9030 \
  -e TZ="Asia/Shanghai" \
  -v /etc/localtime:/etc/localtime \
  -d ${image_name}

echo "----部署完成! 容器 ${app_name} 已启动----"
echo "已映射端口: 9020 (应用端口) 和 9030 (管理端口)"